/**
 * 
 */
package com.swim.natatoriuminfo.entity;

import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.Length;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import javax.validation.constraints.NotNull;

import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.SqlMap;
import com.jeesite.common.mybatis.mapper.query.QueryType;

/**
 * 游泳馆信息Entity
 * (建此类的目的是为了定义排序)
 * @author ljw
 * @version 2022-06-06
 */
@Table(name="t_natatorium_info", alias="a", columns={
		@Column(name="id", attrName="id", label="唯一标识", isPK=true),
		@Column(name="business_status", attrName="businessStatus", label="营业状态 1表示营业中 2表示暂停营业"),
		@Column(name="collaborate_status", attrName="collaborateStatus", label="合作状态 1表示未合作  2表示已合作"),
		@Column(name="name", attrName="name", label="场馆名称", queryType=QueryType.LIKE),
		@Column(name="ranking", attrName="ranking", label="排名"),
		@Column(name="apply_time", attrName="applyTime", label="申请时间"),
		@Column(name="address", attrName="address", label="场馆地址"),
		@Column(name="city", attrName="city", label="城市", queryType=QueryType.EQ),
		@Column(name="area", attrName="area", label="区县", queryType=QueryType.EQ),		
		@Column(name="principal", attrName="principal", label="负责人"),
		@Column(name="venue_description", attrName="venueDescription", label="场馆描述"),
		@Column(name="phone", attrName="phone", label="联系电话"),
		@Column(name="business_hours", attrName="businessHours", label="营业时间"),
		@Column(name="settlement_bank", attrName="settlementBank", label="结算银行"),
		@Column(name="open_account_person", attrName="openAccountPerson", label="开户人"),
		@Column(name="open_account_phone", attrName="openAccountPhone", label="开户电话"),
		@Column(name="open_account_number", attrName="openAccountNumber", label="开户帐号"),
		@Column(name="settlement_first", attrName="settlementFirst", label="首次结算比例"),
		@Column(name="settlement_last", attrName="settlementLast", label="最后结算比例"),
		@Column(includeEntity=DataEntity.class),
	},orderBy="a.create_date ASC"
)
public class NatatoriumInfo1 extends DataEntity<NatatoriumInfo1> {
	
	private static final long serialVersionUID = 1L;
	private Long businessStatus;		// 营业状态 1表示营业中 2表示暂停营业
	private Long collaborateStatus;		// 合作状态 1表示未合作  2表示已合作
	private String name;		// 场馆名称
	private Long ranking;		// 排名
	private Date applyTime;		// 申请时间
	private String address;		// 场馆地址
	private String city;		// 城市
	private String area;		// 区县	
	private String principal;		// 负责人
	private String venueDescription;		// 场馆描述
	private String phone;		// 联系电话
	private String businessHours;		// 营业时间
	private String settlementBank;		// 结算银行
	private String openAccountPerson;		// 开户人
	private String openAccountPhone;		// 开户电话
	private String openAccountNumber;		// 开户帐号
	private Long settlementFirst;		// 首次结算比例
	private Long settlementLast;		// 最后结算比例
	
	//################## 附加字段 #######################
	private List<String> natatoriumInfoImageUrlList = new ArrayList<String>();	//游泳馆图片url集合
	
	
	public NatatoriumInfo1() {
		this(null);
	}

	public NatatoriumInfo1(String id){
		super(id);
	}
	
	public Long getCollaborateStatus() {
		return collaborateStatus;
	}

	public void setCollaborateStatus(Long collaborateStatus) {
		this.collaborateStatus = collaborateStatus;
	}

	public Long getBusinessStatus() {
		return businessStatus;
	}

	public void setBusinessStatus(Long businessStatus) {
		this.businessStatus = businessStatus;
	}

	public List<String> getNatatoriumInfoImageUrlList() {
		return natatoriumInfoImageUrlList;
	}

	public void setNatatoriumInfoImageUrlList(List<String> natatoriumInfoImageUrlList) {
		this.natatoriumInfoImageUrlList = natatoriumInfoImageUrlList;
	}

	public String getCity() {
		return city;
	}

	public void setCity(String city) {
		this.city = city;
	}

	public String getArea() {
		return area;
	}

	public void setArea(String area) {
		this.area = area;
	}

	public Long getRanking() {
		return ranking;
	}

	public void setRanking(Long ranking) {
		this.ranking = ranking;
	}

	@NotBlank(message="场馆名称不能为空")
	@Length(min=0, max=45, message="场馆名称长度不能超过 45 个字符")
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="申请时间不能为空")
	public Date getApplyTime() {
		return applyTime;
	}

	public void setApplyTime(Date applyTime) {
		this.applyTime = applyTime;
	}
	
	@NotBlank(message="场馆地址不能为空")
	@Length(min=0, max=150, message="场馆地址长度不能超过 150 个字符")
	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}
	
	@NotBlank(message="负责人不能为空")
	@Length(min=0, max=10, message="负责人长度不能超过 10 个字符")
	public String getPrincipal() {
		return principal;
	}

	public void setPrincipal(String principal) {
		this.principal = principal;
	}
	
	@Length(min=0, max=500, message="场馆描述长度不能超过 500 个字符")
	public String getVenueDescription() {
		return venueDescription;
	}

	public void setVenueDescription(String venueDescription) {
		this.venueDescription = venueDescription;
	}
	
	@NotBlank(message="联系电话不能为空")
	@Length(min=0, max=20, message="联系电话长度不能超过 20 个字符")
	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}
	
	@Length(min=0, max=50, message="营业时间长度不能超过 50 个字符")
	public String getBusinessHours() {
		return businessHours;
	}

	public void setBusinessHours(String businessHours) {
		this.businessHours = businessHours;
	}
	
	@Length(min=0, max=50, message="结算银行长度不能超过 50 个字符")
	public String getSettlementBank() {
		return settlementBank;
	}

	public void setSettlementBank(String settlementBank) {
		this.settlementBank = settlementBank;
	}
	
	@Length(min=0, max=50, message="开户人长度不能超过 50 个字符")
	public String getOpenAccountPerson() {
		return openAccountPerson;
	}

	public void setOpenAccountPerson(String openAccountPerson) {
		this.openAccountPerson = openAccountPerson;
	}
	
	@Length(min=0, max=50, message="开户电话长度不能超过 50 个字符")
	public String getOpenAccountPhone() {
		return openAccountPhone;
	}

	public void setOpenAccountPhone(String openAccountPhone) {
		this.openAccountPhone = openAccountPhone;
	}
	
	@Length(min=0, max=50, message="开户帐号长度不能超过 50 个字符")
	public String getOpenAccountNumber() {
		return openAccountNumber;
	}

	public void setOpenAccountNumber(String openAccountNumber) {
		this.openAccountNumber = openAccountNumber;
	}
	
	public Long getSettlementFirst() {
		return settlementFirst;
	}

	public void setSettlementFirst(Long settlementFirst) {
		this.settlementFirst = settlementFirst;
	}
	
	public Long getSettlementLast() {
		return settlementLast;
	}

	public void setSettlementLast(Long settlementLast) {
		this.settlementLast = settlementLast;
	}
	
}